package cn.xjt.hello;

/**
 * 创建一个类implement runnable
 * 实例类的对象
 * 构造一个Thread对象，将实例的对象为参数传递过来
 * 通过Thread对象调用start方法
 * 创建多线程的方法二
 * @author xujiangtao
 * @create 2020-07-31-10:59
 */


/**
 * 比较创建线程的两种方式
 * 开发中：优先选择实现Runnable接口的方式
 * 原因：1.实现的方式没有类的单继承的局限性
 *      2.实现的方式更适合来处理多个线程有共享数据的情况。
 * 联系：public class Thread implements Runnable
 * 相同点：两种方式都需要重写run()方法，将线程要执行的逻辑声明在run()中
 */
class Mthread implements Runnable{

    @Override
    public void run() {
        for(int i = 0;i<20;i++)
        {
            if(i%2!=0)
            {
                System.out.println(Thread.currentThread().getName()+"\t20以内有的奇数："+i);
            }
        }
    }
}
class bianli implements Runnable{

    @Override
    public void run() {
        for(int i = 0;i<20;i++)
        {
            if(i%2==0)
            {
                System.out.println(Thread.currentThread().getName()+"\t20以内有的偶数："+i);
            }
        }
    }
}
public class twoThread {
    public static void main(String[] args) {
        Mthread m = new Mthread();
        bianli b = new bianli();
        System.out.println("主函数");
//        new Thread(m).start();
        Thread t = new Thread(m);
        t.start();
        Thread t2 = new Thread(b);
        t2.start();
    }
}
